package com.tencreat.domain.mall.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tencreat.common.annotation.Excel;
import com.tencreat.common.core.domain.BaseVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;


/**
 * @author Administrator
 * 商城
 */
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@Data
public class MallGoodsDTO extends BaseVO {

    private String goodSn;

    private String name;

    /***
     * 用于返回多级分类
     */
    private List<Long> categoryId;
    /***
     * 用于根据分类ID搜索
     */
    private Long category;

    private Long brandId;

    private String gallery;

    private String keywords;

    private String brief;

    private Integer isOnSale;

    private String picUrl;
    private String threeDUrl;

    private String shareUrl;

    private Integer isNew;

    @ApiModelProperty(value= "是否人气推荐，如果设置则可以在人气推荐页面展示")
    private Integer isHot;

    private String unit;

    private BigDecimal counterPrice;

    private BigDecimal retailPrice;

    private BigDecimal supplyPrice;

    private String detail;

    @ApiModelProperty(value= "商品类型 0 店铺商品 1 商城商品")
    private String goodsType;

    @ApiModelProperty(value= "商品类型 0 店铺商品 1 商城商品")
    private String orderType;

    @ApiModelProperty(value= "店铺商品类型 0 美食 1 医疗")
    private String storeType;

    @ApiModelProperty(value= "店铺名称")
    private String storeName;


    private Long commoditySales;

    private Long expectCommoditySales;

    private String salesDiscount;

    private LocalDateTime shelfTime;

    private Long inventory;

    private Long realSales;

    private Long contributionNum;

    /*****
     * 供应商名称
     */
    private String userName;

    private Integer pageNum;

    private Integer pageSize;

    /** 物流方式 */
    private Long logisticsId;
    /** 快递模板 */
    private Long templateId;

    @ApiModelProperty(value= "品牌 0-关闭 1-开启")
    private Integer brand;

    @ApiModelProperty(value= "爆款 0-关闭 1-开启")
    private Integer burst;

    @ApiModelProperty("开始时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;
    @ApiModelProperty("结束时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

    @ApiModelProperty(value= "最小价格")
    private BigDecimal min;
    @ApiModelProperty(value= "最大价格")
    private BigDecimal max;

    @ApiModelProperty("简介/描述")
    private String describe;

    @ApiModelProperty(value= "商品视频")
    private String videoUrl;


    @ApiModelProperty("排序字段")
    private String sortStr;

    @ApiModelProperty("排序规则")
    private String sortDesc;

    @ApiModelProperty(value= "是否分佣 1-是 0-否")
    private Integer isBonus;

    @ApiModelProperty("营业时间开始")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm:ss")
    @TableField(exist = false)
    private LocalTime businessStartTime;

    @ApiModelProperty("营业时间结束")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm:ss")
    @TableField(exist = false)
    private LocalTime businessEndTime;

    @TableField(exist = false)
    @ApiModelProperty(value= "店铺id集合")
    private List<Long> storeIds;


    @TableField(exist = false)
    @ApiModelProperty(value= "供应商id集合")
    private List<Long> supplierIds;


    @TableField(exist = false)
    @ApiModelProperty(value= "userId集合")
    private List<Long> userIds;

    @ApiModelProperty("截止时间")//商品售卖结束时间
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime saleEndTime;

    @ApiModelProperty("核销时间段")//商品核销结束时间
    private String verificationTime;

    @ApiModelProperty("店铺商品可用时间")
    private String useTime;

    @ApiModelProperty(value= "店铺id")
    private Long storeId;

    @ApiModelProperty("是否是店铺商品")
    private Long store;

    @ApiModelProperty("是否是供应商商品 0 是 1 否")
    private Long supplier;

    @ApiModelProperty("套餐分类名称")
    private String setmeal;

    @ApiModelProperty("是否是供应链商品 0 是 1 否")
    private Long chain;

    @ApiModelProperty(value= "套餐分类名")
    private Long setmealId;
}
